数据库 | 您所在的位置:网站首页 › order by desc limit 1 › 数据库 |
前言
select top n 形式的语句可以获取查询的前几个记录,但是 mysql没有此语法,mysql用limit来实现相关功能。 LIMIT子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。 如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。 万年不变学生表有2张表,学生表(student)基本信息如下 科目和分数表(grade) 查询前3名 列出数学成绩前3名的学生(要求显示字段:学号,姓名, 科目,成绩) select * from grade where kemu = '数学' order by score desc limit 3 先通过limit取出前三条记录,再结合student表查询 select a.id, a.name, b.kemu, b.score from student a, grade b where a.id = b.id and kemu = '数学' order by score desc limit 3 查询第2-3名记录 limit后面如果只写一个整数n,那就是查询的前n条记录;如果后面带2个整数n 和 m,那么第一个数n就是查询出来队列的起点(从0开始),第二个是m是统计的总数目 第2-3条记录,那么起点就是1, 第2-3名有2条记录,那么第二个参数就是2 select a.id, a.name, b.kemu, b.score from student a, grade b where a.id = b.id and kemu = '数学' order by score desc limit 1, 2 备注:limit是按条数取的,名次一样的,也算一个记录。如果取第5-14的记录,那就是limit 4 10 查询第3到后面所有的 select a.id, a.name, b.kemu, b.score from student a, grade b where a.id = b.id and kemu = '数学' order by score desc limit 3, 10000 注意:有些资料上写的limit 3, -1 用-1代码最大值,这个是不对的,会报错,解决办法:随便写个非常大的整数 英语课程少于80分的人 统计英语课程少于80分的,显示 学号id, 姓名,科目,分数 SELECT a.id, a.name, b.kemu, b.score FROM student a, grade b WHERE a.id = b.id AND b.kemu = '英语' AND b.score < 80 统计每门课程不及格、一般、优秀 课程不及格(=t1.score ) |
CopyRight 2018-2019 实验室设备网 版权所有 |